From 6f4e4735b30d5709c76e6da64f9bf2b616808cb1 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Thu, 27 Oct 2011 16:04:48 +0100 Subject: [PATCH] interface: add 'discard-secure' and BLKIF_DISCARD_SECURE Alter the 'reserved' uint8_t to be used a 'flag'. We use only for one flag: BLKIF_DISCARD_SECURE. That flag can only be set if the backend has set 'discard-secure' to one. If backend has not set 'discard-secure' to one, that flag will have no effect. Acked-by: Jan Beulich Signed-off-by: Konrad Rzeszutek Wilk Committed-by: Keir Fraser --- xen/include/public/io/blkif.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/xen/include/public/io/blkif.h b/xen/include/public/io/blkif.h index a93d304a24..89b6f1d491 100644 --- a/xen/include/public/io/blkif.h +++ b/xen/include/public/io/blkif.h @@ -120,6 +120,9 @@ * allocation unit in bytes if reported by the device. Otherwise the * discard-granularity will be set to match the device's physical block size. * It is the minimum size you can discard. + * 'discard-secure' - All copies of the discarded sectors (potentially created + * by garbage collection) must also be erased. To use this feature, the flag + * BLKIF_DISCARD_SECURE must be set in the blkif_request_discard. */ #define BLKIF_OP_DISCARD 5 @@ -160,7 +163,8 @@ typedef struct blkif_request blkif_request_t; */ struct blkif_request_discard { uint8_t operation; /* BLKIF_OP_DISCARD */ - uint8_t reserved; /* */ + uint8_t flag; /* BLKIF_DISCARD_SECURE or zero */ +#define BLKIF_DISCARD_SECURE (1<<0) /* ignored if discard-secure=0 */ blkif_vdev_t handle; /* same as for read/write requests */ uint64_t id; /* private guest value, echoed in resp */ blkif_sector_t sector_number;/* start sector idx on disk */ -- 2.30.2